DISCUSSION
The
ATSURightwardCursorPosition function determines the edge offset in backing store memory corresponding to the right of the high caret position based on the type of cursor movement specified in the
iMovementType parameter. You should call
ATSURightwardCursorPosition and the function
ATSULeftwardCursorPosition when the initial edge offset is at a line boundary. At a line boundary, the caret is split into a high and low caret. If the initial edge offset is not at a line direction boundary, you should instead call the functions
ATSUNextCursorPosition and
ATSUPreviousCursorPosition to calculate the next and previous cursor positions.
Note that you may not be able to move the cursor 2-bytes, since doing so might place the cursor in the middle of a surrogate pair.
Except in the case of Indic text (and other cases where the font rearranges the glyphs), for left-to-right text,
ATSURightwardCursorPosition has the same effect as calling
ATSUNextCursorPosition. For right-to-left text,
ATSURightwardCursorPosition has the same effect as calling
ATSUPreviousCursorPosition.